<? include_once('../../../config.php');include_once('../../../ldapConnect.php');

/**
 * Controlador para la búsqueda de canciones.
 * Recoge los parámetros desde la vista y hace uso del modelo para la búsqueda de canciones.
 * Obtiene del modelo los datos necesarios a mostrar en la interfaz.
 * 
 * @package html
 * 
 */
class GenerosAdmin extends Controlador{
	
	/**
	 * Opciones recogidas para hacerlas visibles fuera de la clase
	 * @var array indexado por nombres de opción
	 */
	public $opt;
	
	/**
	 * Datos a mostrar en la vista, tales como los desplegables
	 * @var array indexado por nombre de la lista
	 */
	public $datos;
	
	public $listaGeneros;
	
	public $permisos=true;
	/**
	 * Constructor de la clase
	 * 
	 */
	public function __construct($opciones){FB::info($opciones,'iocuibes');
		try{
			parent::__construct();

			$this->ListaGeneros = new ListaGeneros();
			$this->ListaGeneros->buscar();
			
			if(!$_SESSION['Usuario']->es_Admin()){
				$this->permisos = false; 
				throw new Exception('No tiene suficientes permisos');
			}
			
			$this->obtener_Datos();
			
			$this->obtener_Opciones($opciones);
			
			if($this->opt['crear'])
				$this->crear();
			else if($this->opt['eliminar'])
				$this->eliminar();
			else if($this->opt['editar'])
				$this->editar();
	
			$this->ListaGeneros->buscar();
			
		}catch(Exception $e){
			$this->opt['error'] = $e->getMessage();
		}
	}
	
	private function obtener_Datos(){
		
	}
	
	private function obtener_Opciones($opciones){
		@($opciones['crear'])?$this->opt['crear']=$opciones['crear']:null;
		@($opciones['eliminar'])?$this->opt['eliminar']=$opciones['eliminar']:null;
		@($opciones['editar'])?$this->opt['editar']=$opciones['editar']:null;
		
		@($opciones['id_genero_actual'])?$this->opt['id_genero_actual']=$opciones['id_genero_actual']:null;
		@($opciones['nombre'])?$this->opt['nombre']=$opciones['nombre']:null;
	}
	
	private function crear(){
		$Genero = new Genero();
		$Genero->crear($this->opt);
		$this->opt['msg_ok'] = "Genero creado";
	}
	
	private function eliminar(){
		$Genero = new Genero($this->opt['id_genero_actual']);
		$Genero->del_Genero();
		$this->opt['msg_ok'] = "Genero borrado";
	}
	
	private function editar(){
		$Genero = new Genero($this->opt['id_genero_actual']);
		
		if($this->opt['nombre'] != $Genero->get_Nombre())
			$Genero->set_Nombre($this->opt['nombre']);
			
		$this->opt['msg_ok'] = "Genero editado";
	}
}

?>